<?php

require_once "LoginView.php";
	class LoginHandler {
		
		//Array med användare istället för DB
		private $m_users = array(
		"Name" => "Password",
		"Clars" => "Farbror",
		"Kalle" => "Bah",
		"Baby" => "Face");
		
		private $m_isLoggedIn = "IsLoggedIn";
		
		//Funktion som kontrolerar om användaren är inloggad
		//returnerar true om det stämmer annars false.
		public function IsLoggedIn() {
			if(isset($_SESSION[$this->m_isLoggedIn])) {
				return TRUE;
			}
			return FALSE;
		}
		
		//Funktion för hantering av inloggning
		//returnerar true om det lyckas annars false.
		public function DoLogin($m_name, $m_password) {
			foreach($this->m_users as $key => $Value) {
				if($m_name == $key && $m_password == $Value){
					$_SESSION[$this->m_isLoggedIn] = true;
					return TRUE;
				}
			}
			return FALSE;
		}
		
		//Funktion för hantering av utloggning
		public function DoLogout() {
			unset($_SESSION[$this->m_isLoggedIn]);
		}
		
		//Tester för funktionerna i LoginHandler.php
		//Testet börjar med att försätta programmet i ett utloggat tillstånd
		public function Test() {
			echo "<h2>Funktionstest</h2>";
			$this->DoLogout();
			
			//Testfall som testar funktionen IsLoggedIn
			if ($this->IsLoggedIn()) {
				echo "Test failed! You are still logged in!";
				return FALSE;
			}
			
			//Testfall som testar funktionen DoLogin med fel info
			if ($this->DoLogin("WrongName", "WrongPassword")) {
				echo "Test failed! You maneged to login with wrong information!";
				return FALSE;
			}
			
			//Testfall som testar funktionen DoLogin med rätt info
			if ($this->DoLogin("Name", "Password") == FALSE) {
				echo "Test failed! You couldn't login with right information!";
				return FALSE;
			}
			
			//Testfall som testar funktionen IsLoggedIn
			if ($this->IsLoggedIn() == FALSE) {
				echo "Test failed! You are not logged in!";
				return FALSE;
			}
			
			$this->DoLogout();
			
			//kolla om du är utloggad
			//Testfall som testar funktionen IsLoggedIn
			if ($this->IsLoggedIn()) {
				echo "Test failed! You are still logged in!";
				return FALSE;
			}
			
			//Testfall som testar funktionen DoLogin med rätt namn och fel lösen
			if ($this->DoLogin("Name", "WrongPassword")) {
				echo "Test failed! You maneged to login with wrong information!";
				return FALSE;
			}
			return TRUE;
		}
	}
?>